import java.sql.*;
import java.util.*;
public class M_Multa {
SQLHandler SQL; 
int multa_cod;
int prestatario_cod;
int prestamo_cod;
int dias_atraso;
String multa_fecha_inicio;
int multa_duracion;
String multa_estado;    

Object resultadosMultasEnCurso[][];
Object resultadosMultasPorEjecutar[][];
int numeroResultadosMultasEnCurso;
int numeroResultadosMultasPorEjecutar;
    
    public M_Multa(){
    	SQL = new SQLHandler(); 
    	
    	
    }

//ESTADOS DE MULTA
//MULTA POR EJECUTAR
//se ha detectado una multa pero esta aun no comienza a ejecutarse
//MULTA EN EJECUCION
//se ha devuelto el volumen en cuestion y la multa comienza a ejecutarse
//MULTA REALIZADA
//la multa ha finalizado.
	public int agregarMulta(int PRESTATARIO_COD,int PRESTAMO_COD,int ATRASO_DIAS,int MULTA_DURACION,String MULTA_FECHA_INICIO,String MULTA_ESTADO){
		try{
	   
	   	SQL.insertUpdate("insert into multa( PRESTATARIO_COD, PRESTAMO_COD, ATRASO_DIAS, MULTA_DURACION, MULTA_FECHA_INICIO, MULTA_ESTADO) values ("+PRESTATARIO_COD+","+ PRESTAMO_COD+","+ ATRASO_DIAS+","+ MULTA_DURACION+",\""+ MULTA_FECHA_INICIO+"\",\""+ MULTA_ESTADO+"\");");
	    ResultSet res = SQL.select("select * from multa where PRESTATARIO_COD="+PRESTATARIO_COD+" and PRESTAMO_COD="+PRESTAMO_COD+" and MULTA_ESTADO = \""+MULTA_ESTADO+"\" ");
	    res.next();
	    return res.getInt("MULTA_CODIGO");
		}catch(Exception e){System.out.println("ERROR AGREGARMULTA"+e.getMessage());return 0;}
		 
		
	}
	
	public void getDatosMulta(int cod_multa){
			try{
			ResultSet res=SQL.select("select * from multa where multa_codigo="+cod_multa+"  ");
			
				while(res.next())
	    {
	    		multa_cod=res.getInt("MULTA_CODIGO");;
				prestatario_cod=res.getInt("PRESTATARIO_COD");;
				prestamo_cod=res.getInt("PRESTAMO_COD");;
				dias_atraso=res.getInt("ATRASO_DIAS");;
				multa_fecha_inicio=res.getString("MULTA_FECHA_INICIO");
				multa_duracion=res.getInt("MULTA_DURACION");;
				multa_estado=res.getString("MULTA_ESTADO"); 
	    		            
	               
	   }
		}catch(Exception e){System.out.println("ERROR getPrestamo con idvol"+ e.getMessage());}
		
	}
	

	
	
	public void actualizaDatosMulta(int diasAtraso,String fechaInicioMulta,int multaDuracion, String multaEstado ){
		try{
			SQL.insertUpdate("update multa set atraso_dias="+diasAtraso+", multa_fecha_inicio=\""+fechaInicioMulta+"\",multa_duracion="+multaDuracion+",multa_estado=\""+multaEstado+"\" where multa_codigo="+multa_cod+" ");
		}catch(Exception e){System.out.println("ERROR actualizaDatosMULTA"+ e.getMessage());}
		
	}
	
	public void getMultasEnCurso(){
		numeroResultadosMultasEnCurso=0;
		numeroResultadosMultasPorEjecutar=0;
		resultadosMultasEnCurso=new Object[10][100];
		resultadosMultasPorEjecutar=new Object[7][100];
		try{
			ResultSet res=SQL.select("SELECT multa.*, prestatario.prestatario_cod, prestatario.prestatario_rut, prestatario.prestatario_nombres, prestatario.prestatario_apellidos FROM multa,prestatario where prestatario.prestatario_cod=multa.prestatario_cod and multa_estado=\"MULTA POR EJECUTAR\"  "); //Multas por ejecutar
			ResultSet res2=SQL.select("SELECT multa.*, prestatario.prestatario_cod, prestatario.prestatario_rut, prestatario.prestatario_nombres, prestatario.prestatario_apellidos FROM multa,prestatario where prestatario.prestatario_cod=multa.prestatario_cod and multa_estado=\"MULTA EN EJECUCION\"  "); //Multas en ejecucion
			//por ejecutar
			while(res.next()){
				resultadosMultasPorEjecutar[0][numeroResultadosMultasPorEjecutar]=res.getInt("MULTA_CODIGO");
				resultadosMultasPorEjecutar[1][numeroResultadosMultasPorEjecutar]=res.getInt("PRESTATARIO_COD");
				resultadosMultasPorEjecutar[2][numeroResultadosMultasPorEjecutar]=res.getInt("PRESTAMO_COD");
				resultadosMultasPorEjecutar[3][numeroResultadosMultasPorEjecutar]=res.getString("MULTA_ESTADO");
				resultadosMultasPorEjecutar[4][numeroResultadosMultasPorEjecutar]=res.getString("PRESTATARIO_RUT");
				resultadosMultasPorEjecutar[5][numeroResultadosMultasPorEjecutar]=res.getString("PRESTATARIO_NOMBRES");
				resultadosMultasPorEjecutar[6][numeroResultadosMultasPorEjecutar]=res.getString("PRESTATARIO_APELLIDOS");
				
				
				numeroResultadosMultasPorEjecutar++;
		
			}
			//en curso
			System.out.println("llege?");
			while(res2.next()){
				resultadosMultasEnCurso[0][numeroResultadosMultasEnCurso]=res2.getInt("MULTA_CODIGO");
				resultadosMultasEnCurso[1][numeroResultadosMultasEnCurso]=res2.getInt("PRESTATARIO_COD");
				resultadosMultasEnCurso[2][numeroResultadosMultasEnCurso]=res2.getInt("PRESTAMO_COD");
				resultadosMultasEnCurso[3][numeroResultadosMultasEnCurso]=res2.getString("MULTA_ESTADO");
				resultadosMultasEnCurso[4][numeroResultadosMultasEnCurso]=res2.getInt("ATRASO_DIAS");
				resultadosMultasEnCurso[5][numeroResultadosMultasEnCurso]=res2.getInt("MULTA_DURACION");
				resultadosMultasEnCurso[6][numeroResultadosMultasEnCurso]=res2.getString("MULTA_FECHA_INICIO");
				resultadosMultasEnCurso[7][numeroResultadosMultasEnCurso]=res2.getString("PRESTATARIO_RUT");
				resultadosMultasEnCurso[8][numeroResultadosMultasEnCurso]=res2.getString("PRESTATARIO_NOMBRES");
				resultadosMultasEnCurso[9][numeroResultadosMultasEnCurso]=res2.getString("PRESTATARIO_APELLIDOS");
				
				
				numeroResultadosMultasEnCurso++;
		
			}
		
		}catch(Exception e ){System.out.println("ERROR getMultasEnCurso: "+ e.getMessage());
		}		
		
	}
	
	public void anularMulta(int multa_cod){
		try{
			SQL.insertUpdate("update multa set multa_estado=\"MULTA ANULADA\" where multa_codigo="+multa_cod+" ");
		}catch(Exception e){System.out.println("ERROR actualizaDatosMULTA"+ e.getMessage());}
		
		
		
	}
}
